package com.tbit.uqbike.object.pojo;

import cn.hutool.core.date.DateUtil;
import com.tbit.uqbike.annos.Excel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.util.Date;
import java.util.Objects;

/**
 * @Author: chen
 * @Description: 用户免押会员, 骑行卡购买记录
 * @Date: 创建于 14:21 2020/4/17
 */
@Data
@ToString
@AllArgsConstructor
@NoArgsConstructor
public class UserMember {
    /**
     * 区域代理名称
     */
    @Excel(name = "区域运营商", sort = 6)
    private String accountName;
    /**
     * 手机号码
     */
    @Excel(name = "手机号", sort = 1)
    private String phone;
    /**
     * 免押会员套餐名
     */
    @Excel(name = "会员卡名称", sort = 2)
    private String name;
    /**
     * 购买时间
     */
    @Excel(name = "购买时间", sort = 4)
    private String buyTime;
    /**
     * 失效日期
     */
    @Excel(name = "到期时间", sort = 5)
    private String expireTime;
    /**
     * 金额
     */

    private Integer money;

    @Excel(name = "购买金额(元)",sort = 3)
    private Double moneyYuan;
    /**
     * 是否失效
     */
    private Integer isValid;
    /**
     * 累计使用次数
     */
    private Integer useCount;
    /**
     * 总共可用次数
     */
    private Integer maxRide;

    private Integer rideCardId;

    private String orderNO;

    private Integer accountId;
    /**
     * 最近一次使用时间
     */
    private Date lastUsedTime;
    /**
     * 今日使用次数
     */
    private Integer currentNum;
    /**
     * 使用类型 0-总共可用 1-每天可用
     */
    private Integer userType;


    public UserMember(String orderNO) {
        this.orderNO = orderNO;
    }

    /**
     * 是否为日卡并重置次数
     *
     * @return boolean
     */
    public boolean whetherDailyCardAndResetCurrentNum() {
//        if (Objects.equals(0, this.userType)) {
//            return false;
//        }
        if (Objects.nonNull(this.lastUsedTime) && this.lastUsedTime.getTime() > DateUtil.beginOfDay(new Date()).getTime()) {
            return false;
        }
        this.currentNum = 0;
        return true;
    }

}
